package VisualOperadores;

import java.util.ArrayList;

import Tela.AcaoPanelGrafo;
import Tela.ItemPGNoh;

public class AcaoPgAgrupamento extends AcaoPanelGrafo {
	private String operator;
	private ArrayList<String> group;

	public AcaoPgAgrupamento() {
		group = new ArrayList<String>();
	}

	public String executar(int x, int y) {
		ItemPGNoh noh = new ItemPGNoh(x, y, "Agrupamento");
		noh.SetSql(this.doSQL());
		getPanelGrafo().addItem(noh); // mudar para colocar o simbolo de
										// Arupamento
		return null;
	}

	public void encerrar(int x, int y) {
		// nada a fazer aqui
	}

	public void mover(int x, int y) {
		// nada a fazer aqui
	}

	public void mudouAcao() {
	}

	public void setOperator(String Operador) {
		this.operator = Operador;
	}

	public void setGrupo(String strGroup) {
		this.group.add(strGroup);
	}

	public String getGrupo() {
		StringBuilder strGrupo = new StringBuilder();
		int isFirst = 0;
		for (String strCampo : this.group) {

			if (isFirst > 0) {
				isFirst++;
				strGrupo.append(",");
			}
			strGrupo.append(strCampo);
		}

		return strGrupo.toString();
	}

	public String doSQL() {
		StringBuilder sql = new StringBuilder();

		sql.append("SELECT * " + " FROM (" + this.operator
				+ ") as agrupamento " + " GROUP BY " + this.getGrupo());

		return sql.toString();

	}

}
